package com.yfp.operation.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfp.common.core.domain.R;
import com.yfp.common.security.utils.SecurityUtils;
import com.yfp.operation.domain.MiniJingang;
import com.yfp.operation.service.MiniJingangService;
import com.yfp.operation.mapper.MiniJingangMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @author admin
* @description 针对表【mini_jingang(小程序金刚区)】的数据库操作Service实现
* @createDate 2024-12-17 15:58:00
*/
@Service
public class MiniJingangServiceImpl extends ServiceImpl<MiniJingangMapper, MiniJingang>
    implements MiniJingangService{

    @Resource
    private MiniJingangMapper miniJingangMapper;


    /**
     * 金刚区列表
     * @return
     */
    @Override
    public List<MiniJingang> miniJinGangList() {
        return miniJingangMapper.miniJinGangList();
    }

    /**
     * 新增金刚区功能
     * @param miniJingang
     */
    @Override
    public void add(MiniJingang miniJingang) {
        miniJingang.setCreateUserId(SecurityUtils.getUserId());
        miniJingang.setCityName(SecurityUtils.getLoginUser().getSysUser().getCityName());
        miniJingang.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
        miniJingangMapper.add(miniJingang);
    }

    /**
     * 修改金刚区
     * @param miniJingang
     */
    @Override
    public R<Void> updateJinGang(MiniJingang miniJingang) {
        if (miniJingang.getStatus() != null && miniJingang.getStatus() == 0) {
            // 校验此时展示的是否小于4个，小于4个则不能修改为隐藏
            Integer showNum = miniJingangMapper.showNum();
            if (showNum <= 4) {
                return R.fail("隐藏失败，展示数量不能小于4个");
            }
        }
        miniJingang.setUpdateUserId(SecurityUtils.getUserId());
        miniJingangMapper.updateJinGang(miniJingang);
        return R.ok();
    }

    /**
     * 删除金刚区
     * @param id
     */
    @Override
    public void deleteJinGang(Long id) {
        miniJingangMapper.deleteById(id);
    }

    /**
     * 金刚区排序
     * @param list
     * @return
     */
    @Override
    public List<MiniJingang> sort(List<MiniJingang> list) {
        miniJingangMapper.sort(list);
        return miniJingangMapper.miniJinGangList();
    }


}




